# -*- coding: utf-8 -*-
"""
@Time    : 2024/7/31 11:03 
@Author  : ZhangShenao 
@File    : regex_converter.py 
@Desc    : 自定义正则路由转换器

在Flask中,可以通过继承BaseConverter,实现自定义路由转换器
之后通过Flask的app.url_map.converters属性,注册自定义的路由转换器
"""
import typing as t

from werkzeug.routing import BaseConverter, Map


class RegexConverter(BaseConverter):
    """正则路由转换器,基于正则表达式匹配路由"""

    def __init__(self, map: Map, *args: t.Any, **kwargs: t.Any) -> None:
        # 执行父类的初始化
        super().__init__(map, *args, **kwargs)

        # 获取参数中的正则表达式,执行自定义的初始化
        self.regex = args[0]
